:: 证书密码
set password="abc123"
:: 服务端证书别称
set server_alias=leagueserver
:: 服务端主机地址
set hostname=www.baidu.com
:: 客户端证书别称
set client_alias=app_probe
:: 证书有效期
set validity=3650
:: 公司名
set companyName=tanzhen
:: 部门
set department=tech
:: 服务端证书文件名
set server_file_name=probe_server
:: 客户端证书文件名
set client_file_name=probe_client

:: 证书信息
set server_dname="CN=%hostname%,OU=%department%,O=%companyName%,L=ShaPingBa,ST=ChongQing,C=CN"
set client_dname="CN=%client_alias%,OU=%department%,O=%companyName%,L=ShaPingBa,ST=ChongQing,C=CN"

:: 服务端
keytool -genkeypair -alias %server_alias% -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -storetype PKCS12 -storepass %password% -validity %validity% -dname %server_dname% -keystore %server_file_name%.jks

:: 导出服务端公钥
keytool -export -alias %server_alias% -storepass %password% -file %server_file_name%_publickey.cer -keystore %server_file_name%.jks

:: 客户端
keytool -genkeypair -alias %client_alias% -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -storetype PKCS12 -storepass %password% -validity %validity% -dname %client_dname% -keystore %client_file_name%.jks

:: 导出客户端公钥
keytool -export -alias %client_alias% -storepass %password% -file %client_file_name%_publickey.cer -keystore %client_file_name%.jks

:: 把客户端的cert导入到服务端
keytool -import -noprompt -alias %client_alias% -storepass %password% -file %client_file_name%_publickey.cer -keystore %server_file_name%.jks
:: 把服务端的cert导入到客户端
keytool -import -noprompt -alias %server_alias% -storepass %password% -file %server_file_name%_publickey.cer -keystore %client_file_name%.jks

:: 清理公钥
:: del %client_file_name%_publickey.cer
:: del %server_file_name%_publickey.cer

:: 客户端证书换为PFX格式
keytool -importkeystore -srckeystore %client_file_name%.jks -destkeystore %client_file_name%.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass %password% -deststorepass %password% -srckeypass %password% -destkeypass %password% -srcalias %client_alias% -destalias %client_alias% -noprompt